Various electro-optical systems have been developed for reading optical indicia, such as barcodes. A barcode is a coded pattern of graphical indicia comprised of a series of bars and spaces of varying widths. In a barcode, the bars and spaces having differing light reflecting characteristics. Some of the barcodes have a one-dimensional structure in which bars and spaces are spaced apart in one direction to form a row of patterns. Examples of one-dimensional barcodes include Uniform Product Code (UPC), which is typically used in retail store sales. Some of the barcodes have a two-dimensional structure in which multiple rows of bar and space patterns are vertically stacked to form a single barcode. Examples of two-dimensional barcodes include Code 49 and PDF417, which are respectively described in U.S. Pat. No. 4,794,239 and U.S. Pat. No. 5,304,786.
Systems that use one or more solid-state imagers for reading and decoding barcodes are typically referred to as imaging-based barcode readers, imaging scanners, or imaging readers. A solid-state imager generally includes a plurality of photosensitive elements or pixels aligned in one or more arrays. Examples of solid-state imagers include charged coupled devices (CCD) or complementary metal oxide semiconductor (CMOS) imaging chips.
The performance of an imaging-based barcode reader for reading and decoding a barcode substantially depends upon the quality of the image of this barcode that is detected by the solid-state imager. The quality of the image depends upon whether the image is correctly focused on the solid-state imager. It is desirable to have an imaging-based barcode reader that can achieve focused images reliably over some range of working distances.